// var i;
// var c;
// var s = cc._decorator;
// var l = s.ccclass;
// var u = s.property;
// var d = s.disallowMultiple;
// var p = s.menu;
// !(function (e) {
//     e[(e.None = 0)] = "None";
//     e[(e.Top = 1)] = "Top";
//     e[(e.Down = 2)] = "Down";
//     e[(e.LEFT = 3)] = "LEFT";
//     e[(e.RIGHT = 4)] = "RIGHT";
// })(c || (c = {}));
// var h = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.dir = c.None;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onLoad = function () {
//         var e = 0;
//         var t = 0;
//         if (this.dir == c.Top) {
//             t = this._getAdaptY();
//         }
//         if (this.dir == c.Down) {
//             t = -this._getAdaptY();
//         }
//         if (this.dir == c.LEFT) {
//             e = -this._getAdaptX();
//         }
//         if (this.dir == c.RIGHT) {
//             e = this._getAdaptX();
//         }
//         this.node.x += e;
//         this.node.y += t;
//     };
//     t.prototype._getAdaptX = function () {
//         var e = cc.view.getDesignResolutionSize();
//         return (cc.winSize.width - e.width) / 2;
//     };
//     t.prototype._getAdaptY = function () {
//         var e = cc.view.getDesignResolutionSize();
//         return (cc.winSize.height - e.height) / 2;
//     };
//     __decorate(
//         [
//             u({
//                 type: cc.Enum(c)
//             })
//         ],
//         t.prototype,
//         "dir",
//         void 0
//     );
//     return __decorate([l, d(), p("节点适配组件/adaptive")], t);
// })(cc.Component);
// exports.default = h;


// const { ccclass, property, disallowMultiple, menu } = cc._decorator;

// /**
//  * 方向枚举
//  * 建议名称：DirectionEnum
//  */
// enum Direction {
//     None = 0,
//     Top = 1,
//     Down = 2,
//     LEFT = 3,
//     RIGHT = 4
// }

// /**
//  * 节点适配组件
//  * 建议名称：AdaptiveComponent
//  */
// @ccclass
// @disallowMultiple()
// @menu("节点适配组件/adaptive")
// export default class AdaptiveComponent extends cc.Component {
//     /**
//      * 方向属性
//      * 建议名称：direction
//      */
//     @property({
//         type: cc.Enum(Direction)
//     })
//     public dir: Direction = Direction.None;

//     /**
//      * 当组件加载时调用
//      * 建议名称：handleOnLoad
//      */
//     onLoad(): void {
//         let offsetX = 0;
//         let offsetY = 0;

//         switch (this.dir) {
//             case Direction.Top:
//                 offsetY = this._getAdaptY();
//                 break;
//             case Direction.Down:
//                 offsetY = -this._getAdaptY();
//                 break;
//             case Direction.LEFT:
//                 offsetX = -this._getAdaptX();
//                 break;
//             case Direction.RIGHT:
//                 offsetX = this._getAdaptX();
//                 break;
//         }

//         this.node.x += offsetX;
//         this.node.y += offsetY;
//     }

//     /**
//      * 获取适配的X偏移量
//      * 建议名称：getAdaptX
//      */
//     private _getAdaptX(): number {
//         const designResolution = cc.view.getDesignResolutionSize();
//         return (cc.winSize.width - designResolution.width) / 2;
//     }

//     /**
//      * 获取适配的Y偏移量
//      * 建议名称：getAdaptY
//      */
//     private _getAdaptY(): number {
//         const designResolution = cc.view.getDesignResolutionSize();
//         return (cc.winSize.height - designResolution.height) / 2;
//     }
// }

const { ccclass, property, disallowMultiple, menu } = cc._decorator;

/**
 * 方向枚举
 * 建议名称：DirectionEnum
 */
enum Direction {
    None = 0,
    Top = 1,
    Down = 2,
    LEFT = 3,
    RIGHT = 4
}

/**
 * 节点适配组件
 * 建议名称：AdaptiveComponent
 */
@ccclass
@disallowMultiple()
@menu("节点适配组件/adaptive")
export default class AdaptiveComponent extends cc.Component {
    /**
     * 方向属性
     * 建议名称：direction
     */
    @property({
        type: cc.Enum(Direction)
    })
    public dir: Direction = Direction.None;

    /**
     * 当组件加载时调用
     * 建议名称：handleOnLoad
     */
    onLoad(): void {
        let offsetX = 0;
        let offsetY = 0;

        // 使用 switch 语句来调整节点位置
        switch (this.dir) {
            case Direction.Top:
                offsetY = this._calculateAdaptOffsetY();
                break;
            case Direction.Down:
                offsetY = -this._calculateAdaptOffsetY();
                break;
            case Direction.LEFT:
                offsetX = -this._calculateAdaptOffsetX();
                break;
            case Direction.RIGHT:
                offsetX = this._calculateAdaptOffsetX();
                break;
        }

        // 调整节点位置
        this.node.x += offsetX;
        this.node.y += offsetY;
    }

    /**
     * 获取适配的X偏移量
     * 建议名称：getAdaptX
     */
    private _calculateAdaptOffsetX(): number {
        // 获取设计分辨率
        const designResolution = cc.view.getDesignResolutionSize();
        // 返回适配的X偏移量
        return (cc.winSize.width - designResolution.width) / 2;
    }

    /**
     * 获取适配的Y偏移量
     * 建议名称：getAdaptY
     */
    private _calculateAdaptOffsetY(): number {
        // 获取设计分辨率
        const designResolution = cc.view.getDesignResolutionSize();
        // 返回适配的Y偏移量
        return (cc.winSize.height - designResolution.height) / 2;
    }
}